package nb.diskfilesystem.controller;

import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;
import nb.diskfilesystem.model.DirectoryEntry;

public class FileEditorController {

    @FXML
    private Label fileNameLabel;
    @FXML
    private Label fileAttributeLabel;
    @FXML
    private Label fileTypeLabel;
    @FXML
    private Label fileLengthLabel;
    @FXML
    private TextArea textArea;
    @FXML
    private Button saveButton;

    private DirectoryEntry directoryEntry;

    public void setDirectoryEntry(DirectoryEntry directoryEntry) {
        this.directoryEntry = directoryEntry;
        initializeControls(); // 设置目录项后初始化控件
    }

    // 用于初始化控件的方法
    public void initializeControls() {
        if (directoryEntry != null) {
            // 设置文件名
            fileNameLabel.setText("文件名："+directoryEntry.getName());
            // 设置文件属性
            fileAttributeLabel.setText("文件属性："+directoryEntry.getAttributes());
            // 设置文件类型
            fileTypeLabel.setText("文件类型："+directoryEntry.getType());
            // 设置文件长度
            fileLengthLabel.setText(String.valueOf("文件长度："+directoryEntry.getLength()));
            // 假设 textArea 用于显示文件内容，这里只是示例，实际应从文件读取
            textArea.setText(directoryEntry.getContent());
        }
    }

    @FXML
    private void handleSave() {
        // 保存文件内容的逻辑
        // 获取TextArea中的内容
        String content = textArea.getText();
        // 将内容设置到DirectoryEntry的content属性中
        directoryEntry.setContent(content);
        // 计算TextArea中内容的长度
        int length = content.length();
        // 更新DirectoryEntry的length属性
        directoryEntry.setLength(length);
        // 更新文件长度标签
        fileLengthLabel.setText("文件长度：" + length);
        // 打印保存成功的消息
        System.out.println("保存内容到文件: " + directoryEntry.getName());
    }


}